package com.whale.kernel.model.tree;

/**
 * 
 * Ограничивает уровень вложенных веток дерева
 *
 */
public class LevelLimiter {

	//private final static int MAX_LEVEL = 3;

	private int level;
	private final int maxLevel;

	public LevelLimiter(int maxLevel) {
		level = 0;
		this.maxLevel = maxLevel;
	}

	public void increase() {
		level++;
	}

	public void decrease() {
		level--;
	}

	/**
	 * Вернет false в случае когда следующий уровень недоступен
	 */
	public boolean canNext() {
		if (level >= maxLevel) {
			return false;
		}
		return true;
	}
	
	/**
	 * Это предпоследний уровень
	 */
	public boolean isPenultimate() {
		increase();
		boolean canNext = canNext();
		decrease();
		
		return !canNext;
	}

}
